package com.mingyuan.library.domain.common.enums;

import com.mingyuan.library.domain.common.enums.ErrorEnumBase;
import com.mingyuan.library.domain.lending.book.exception.BookException;

/**
 * 断言，异常
 * @author yangzk
 */
public interface Assert extends ErrorEnumBase {

    /**
     * 获取异常码
     * @author yangzk
     * @date 2024/1/5 19:35
     * @return 异常码
     **/
    @Override
    String getErrCode();

   /**
    * 获取异常信息
    * @author yangzk
    * @date 2024/1/5 19:36
    * @return 异常信息
    **/
    @Override
    String getErrMessage();

    /**
     * 业务异常断言：LendingException
     * @author yangzk
     * @param flag 是否抛出异常标识 true 是 false 否
     * @date 2024/1/5 19:36
     **/
    default void isThrowException(boolean flag) {
        this.isThrowException(flag, getErrMessage());
    }

    /**
     * 业务异常断言：LendingException
     * @author yangzk
     * @param flag    flag
     * @param message 自定义错误信息
     * @date 2024/1/5 19:37
     **/
    default void isThrowException(boolean flag, String message) {
        if (flag) {
            throw new BookException(getErrCode(), message);
        }
    }

}
